home *** CD-ROM | disk | FTP | other *** search
/ funcom 2000 Presskit / 000721_1312 (fun.com).iso / funcom.dir / 00022_Script_Slider Button behavior < prev    next >
Text File  |  2000-07-20  |  9KB  |  268 lines

  1.  
  2.  
  3. -- Slider Button behavior
  4.  
  5. -----------------------------------------------------------
  6. -- This behavior constrains the motion of a button along a 
  7. -- vertical or horizontal track to simulate a sliding 
  8. -- button. The button outputs a value between 0 and 100 
  9. -- depending on its position. 
  10. --
  11. -- You attach this behavior to a slider sprite.
  12. --
  13. -- David Benman 11/97
  14. -----------------------------------------------------------
  15.  
  16. -- pCurrentSprite - This behavior's sprite number
  17. -- pSliderName - The slider's cast member name. This
  18. -- behavior uses the name to uniquely identify its messages
  19. -- to other behaviors.
  20. -- pTrackOrientation - The direction of the track, 
  21. -- vertical or horizontal
  22. -- pTrackSprite - The track's sprite number
  23. -- pTrackLength - The length in pixel's of the track
  24. -- pTrackLowerLimit - The stage location of the lower limit
  25. -- of the track and the slider's motion
  26. -- pLastClicked - The last sprite clicked
  27. property  pCurrentSprite, pSliderName, pTrackOrientation, pTrackSprite, pTrackLength, pTrackLowerLimit, pLastClicked
  28.  
  29.  
  30. -- This handler sets the limits for the indicator's
  31. -- movement on the screen
  32. on beginSprite me
  33.   
  34.   -- Determines the number and member name of the
  35.   -- behavior's sprite
  36.   set pCurrentSprite to the spriteNum of me
  37.   set currentMember to the member of sprite pCurrentSprite
  38.   set pSliderName to the name of member currentMember
  39.   
  40.   -- Sets the track sprite to be the sprite in the score
  41.   -- directly above the behavior's sprite 
  42.   set pTrackSprite to pCurrentSprite - 1
  43.   
  44.   -- Creates a frame of reference for the slider including
  45.   -- its orientation, length and its lower limit of
  46.   -- movement.
  47.   set trackWidth to the width of sprite pTrackSprite
  48.   set trackHeight to the height of sprite pTrackSprite
  49.   
  50.   if trackWidth > trackHeight then
  51.     set pTrackOrientation to #horizontal
  52.     set pTrackLength to trackWidth
  53.     set pTrackLowerLimit to the left of sprite pTrackSprite
  54.   else
  55.     set pTrackOrientation to #vertical
  56.     set pTrackLength to trackHeight
  57.     set pTrackLowerLimit to the top of sprite pTrackSprite
  58.   end if
  59.   
  60.   set pLastClicked to 0
  61.   
  62. end
  63.  
  64.  
  65. -- This handler indicates you clicked the behavior's 
  66. -- sprite.
  67. on mouseDown me
  68.   set pLastClicked to the spriteNum of me
  69. end
  70.  
  71.  
  72. -- This handler indicates you have released the behavior's
  73. -- sprite.
  74. on mouseUp me
  75.   set pLastClicked to 0
  76. end
  77.  
  78.  
  79. -- This handler indicates you have released the behavior's
  80. -- sprite.
  81. on mouseUpOutside me
  82.   set pLastClicked to 0
  83. end
  84.  
  85.  
  86. -- This handler continuously moves the slider to match the
  87. -- mouse's position when you drag the slider.
  88. on prepareFrame me
  89.   
  90.   -- Move the slider when you hold down the mouse button
  91.   -- and the slider is the last item you clicked.
  92.   if the mouseDown AND pLastClicked = pCurrentSprite then
  93.     if pTrackOrientation = #horizontal then
  94.       slideButton(me, the mouseH)
  95.     else
  96.       slideButton(me, the mouseV)
  97.     end if
  98.   end if
  99.   
  100. end
  101.  
  102.  
  103. -- This handler moves the slider and sends a message
  104. -- to all the sprites in the frame.
  105. on slideButton me, newLoc
  106.   global employee
  107.   set currentSprite to the spriteNum of me
  108.   
  109.   -- Moves the slider to a new location limited by
  110.   -- the dimensions of the track
  111.   if pTrackOrientation = #vertical then
  112.     set newLoc to constrainV(pTrackSprite, newLoc)
  113.     set the locV of sprite currentSprite to newLoc
  114.   else
  115.     set newLoc to constrainH(pTrackSprite, newLoc)
  116.     set the locH of sprite currentSprite to newLoc
  117.   end if
  118.   
  119.   -- Creates a value between 0 and 100 representing the 
  120.   -- slider's new position
  121.   set relativePosition to float(newLoc - pTrackLowerLimit)
  122.   set ratio to relativePosition/pTrackLength * 100
  123.   
  124.   --creates employee track
  125.   set employee to integer(ratio*1.2)
  126.   repeat with i = 110 to (employee+110)
  127.     set the visible of sprite (i) to 1
  128.   end repeat
  129.   repeat with i = (employee+110) to 240
  130.     set the visible of sprite (i) to 0
  131.   end repeat
  132.   
  133.   
  134.   --  --tells wich games where published
  135.   --  if employee<12 then
  136.   --    put "1993" into member ("┼r")
  137.   --    put "None" into member ("Spill")
  138.   --  end if
  139.   --  if employee>12 and employee < 27 then
  140.   --    put "1994" into member ("┼r")
  141.   --    put "Daze Before Christmas and A Dinosaurs Tale" into member ("Spill")
  142.   --  end if
  143.   --  if employee>27 and employee < 43 then
  144.   --    put "1995" into member ("┼r")
  145.   --    put "Casper, Dragonheart, Fatal Fury, Nightmare Circus, Pocahontas and Samurai Shodown " into member ("Spill")
  146.   --  end if
  147.   --  if employee>43 and employee < 59 then
  148.   --    put "1996" into member ("┼r")
  149.   --    put "NBA Hangtime, Impact Racing and Wintergold " into member ("Spill")
  150.   --  end if
  151.   --  if employee>59 and employee < 75 then
  152.   --    put "1997" into member ("┼r")
  153.   --    put "Deadly Skies" into member ("Spill")
  154.   --  end if
  155.   --  if employee>75 and employee < 90 then
  156.   --    put "1998" into member ("┼r")
  157.   --    put "None" into member ("Spill")
  158.   --  end if
  159.   --  if employee>90 and employee < 106 then
  160.   --    put "1999" into member ("┼r")
  161.   --    put "Championship Motocross, Speed Freaks and The Longest Journey (No, Se, Fr)" into member ("Spill")
  162.   --  end if
  163.   --  if employee>106 and employee < 120 then
  164.   --    put "2000" into member ("┼r")
  165.   --    put "The Longest Journey (Eng, Ger)" into member ("Spill")
  166.   --  end if
  167.   
  168.   --tells wich games where published
  169.   if employee<12 then
  170.     put "1993" into member ("┼r")
  171.     set the visible of sprite 55 to 1
  172.     set the visible of sprite 56 to 0
  173.     set the visible of sprite 57 to 0
  174.     set the visible of sprite 58 to 0
  175.     set the visible of sprite 59 to 0
  176.     set the visible of sprite 60 to 0
  177.     set the visible of sprite 61 to 0
  178.     set the visible of sprite 62 to 0
  179.   end if
  180.   if employee>12 and employee < 27 then
  181.     put "1994" into member ("┼r")
  182.     set the visible of sprite 55 to 0
  183.     set the visible of sprite 56 to 1
  184.     set the visible of sprite 57 to 0
  185.     set the visible of sprite 58 to 0
  186.     set the visible of sprite 59 to 0
  187.     set the visible of sprite 60 to 0
  188.     set the visible of sprite 61 to 0
  189.     set the visible of sprite 62 to 0
  190.   end if
  191.   if employee>27 and employee < 43 then
  192.     put "1995" into member ("┼r")
  193.     set the visible of sprite 55 to 0
  194.     set the visible of sprite 56 to 0
  195.     set the visible of sprite 57 to 1
  196.     set the visible of sprite 58 to 0
  197.     set the visible of sprite 59 to 0
  198.     set the visible of sprite 60 to 0
  199.     set the visible of sprite 61 to 0
  200.     set the visible of sprite 62 to 0
  201.   end if
  202.   if employee>43 and employee < 59 then
  203.     put "1996" into member ("┼r")
  204.     set the visible of sprite 55 to 0
  205.     set the visible of sprite 56 to 0
  206.     set the visible of sprite 57 to 0
  207.     set the visible of sprite 58 to 1
  208.     set the visible of sprite 59 to 0
  209.     set the visible of sprite 60 to 0
  210.     set the visible of sprite 61 to 0
  211.     set the visible of sprite 62 to 0
  212.   end if
  213.   if employee>59 and employee < 75 then
  214.     put "1997" into member ("┼r")
  215.     set the visible of sprite 55 to 0
  216.     set the visible of sprite 56 to 0
  217.     set the visible of sprite 57 to 0
  218.     set the visible of sprite 58 to 0
  219.     set the visible of sprite 59 to 1
  220.     set the visible of sprite 60 to 0
  221.     set the visible of sprite 61 to 0
  222.     set the visible of sprite 62 to 0
  223.   end if
  224.   if employee>75 and employee < 90 then
  225.     put "1998" into member ("┼r")
  226.     set the visible of sprite 55 to 0
  227.     set the visible of sprite 56 to 0
  228.     set the visible of sprite 57 to 0
  229.     set the visible of sprite 58 to 0
  230.     set the visible of sprite 59 to 0
  231.     set the visible of sprite 60 to 1
  232.     set the visible of sprite 61 to 0
  233.     set the visible of sprite 62 to 0
  234.   end if
  235.   if employee>90 and employee < 106 then
  236.     put "1999" into member ("┼r")
  237.     set the visible of sprite 55 to 0
  238.     set the visible of sprite 56 to 0
  239.     set the visible of sprite 57 to 0
  240.     set the visible of sprite 58 to 0
  241.     set the visible of sprite 59 to 0
  242.     set the visible of sprite 60 to 0
  243.     set the visible of sprite 61 to 1
  244.     set the visible of sprite 62 to 0
  245.   end if
  246.   if employee>106 and employee < 120 then
  247.     put "2000" into member ("┼r")
  248.     set the visible of sprite 55 to 0
  249.     set the visible of sprite 56 to 0
  250.     set the visible of sprite 57 to 0
  251.     set the visible of sprite 58 to 0
  252.     set the visible of sprite 59 to 0
  253.     set the visible of sprite 60 to 0
  254.     set the visible of sprite 61 to 0
  255.     set the visible of sprite 62 to 1
  256.   end if
  257.   
  258.   
  259.   -- Tells the other sprites the slider has moved and
  260.   -- its new position in the form of a ratio
  261.   sendAllSprites(#sliderMove, pSliderName, ratio)
  262.   
  263. end
  264.  
  265.  
  266.  
  267.  
  268.